#ifndef NEAREST_INFO_H
#define NEAREST_INFO_H

#include <cmath>

#include "src/math/vector3d.h"

#include "src/scene/object.h"
#include "src/scene/color.h"

#include "src/defines/texture.h"

struct NearestInfo {
    NearestInfo(Object *_obj = NULL, const double &_t = INFINITY, const Vector3D &_p = Vector3D(), const Vector3D &_n = Vector3D());
    ~NearestInfo(){};

    NearestInfo& operator=(const NearestInfo &);

    void setAll(Object *, const double &, const Vector3D &, const Vector3D &);

    Object *object;
    double t;
    Vector3D point, normal;
    Color texture;
};

#endif

